module.exports = function(grunt){
    // 项目配置
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        // 通过connect任务，创建一个静态服务器
        connect : {
            options : {
                port : 9000,
                hostname : '*', //默认就是这个值，可配置为本机某个 IP，localhost 或域名
                //livereload : 35729 //声明给 watch 监听的端口
            },

            server : {
                options : {
                    open : true, //自动打开网页 http://
                    base : [
                        '' //主目录
                    ]
                }
            }
        },
        /*sprite: {
         all: {
         src: 'src/slice/*.png',
         dest: 'dest/images/spritesheet.png',
         destCss: 'dest/css/icon.css',
         // imgPath: '', //指定css样式表中 img路径
         padding: 10,
         // algorithm: 'left-right', // 图标在 spriesheet中的排列方式
         algorithmOpts: {sort: true} //图标排列 是否按顺序
         // engine: , 现在安装的是gm
         // imgOpts: {quality: 10}
         //可选: 指定CSS格式 (默认根据destCSS中的后缀设置格式)
         // (stylus, scss, scss_maps, sass, less, json, json_array, css)
         // cssFormat: ,
         // cssTemplate: ,
         // cssHandlebarsHelpers: ,
         // cssVarMap: ,
         // cssSpritesheetName: ,
         // cssOpts: ,
         }
         },*/
        //合并原本的css
        /*concat: {
         two: {
         src: ['dest/css/icon.css','dest/css/new.css'
         ],
         dest: 'dest/css/main.css',
         },
         },*/
        // uglify: {
        //     options: {
        //         banner: '/*! 已压缩 */'
        //     },
        //     build: {
        //         files: [{
        //             expand: true,
        //             cwd: 'src',
        //             src: '**/*.js',
        //             dest: 'dest'
        //         }]
        //     }
        // },
        uglify : {
            options : {
                // banner: '/*! <%= pkg.file %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
                preserveComments : 'all',
                mangle : false
            },
            build : {
                files : [{
                    expand : true,
                    cwd : 'src',
                    src : '**/*.js',
                    dest : 'app'
                }]
            }
        },
        less : {
            task1 : {
                options : {
                    compress : true,
                    yuicompress : true
                },
                files : [{
                    expand : true,
                    cwd : 'src/css',
                    src : '**/*.less',
                    ext : '.css',
                    dest : 'assets/css/style'
                }]
            }
        },
        watch : {
            build : {
                files : [
                    // '**/*.html',
                    'src/**/*.js',
                    'src/css/*.less',
                    'src/slice/*.png'
                ],
                tasks : ['uglify', 'less'],
                /*options: {
                 livereload: '<%=connect.options.livereload%>' //监听前面声明的端口  35729
                 },*/
            }
        }
        // watch: {
        //     livereload: {
        //         files: [ //下面文件的改变就会实时刷新网页
        //             '**/*.html',
        //             '**/*.css',
        //             '**/*.js',
        //             '**/{,*/}*.{png,jpg}'
        //         ],
        //         options: {
        //             livereload: '<%=connect.options.livereload%>' //监听前面声明的端口  35729
        //         },
        //         tasks: ['uglify', 'less', 'concat','sprite']
        //     }
        // }
    });
    // 加载提供"uglify"任务的插件
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-less');
    grunt.loadNpmTasks('grunt-contrib-connect');
    // grunt.loadNpmTasks('grunt-spritesmith');
    // grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-watch');
    // 默认任务
    grunt.registerTask('serve', [
        'less',
        'uglify',
        // 'concat',
        // 'sprite',
        'connect:server',
        'watch'
    ]);
}
